home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / shelp50a.zip / HELPMGR.PRG < prev    next >
Text File  |  1991-08-11  |  5KB  |  144 lines

  1.  
  2. *==========================================================================
  3. FUNCTION HELPMGR
  4. *    Project Name: Helpdemo
  5. *    Project Description: Superhelp Library   
  6. *    Written By: Darryl Strickland   
  7. *    Help Manager System Generated by Superhelp Codegen 5.0
  8. *    Generated August 11, 1991  -   8:43 PM
  9. *    Copyright (c) by DJS Applications    
  10. *
  11. *    Superhelp Codegen Help Manager Produced (SHELP.MGR)
  12. *    After Generating * New * Help Manager File - Delete Helpmgr.Dbf
  13. *
  14. *    Thank you for using Superhelp Code Generator 5.0  -  DJS Applications
  15. *==========================================================================
  16. PARAMETER cProc,nLine,cVar
  17. LOCAL aFldnames:={"Helpmgr->DESC"},aFldhdrs:={SPACE(11)+"HELP MANAGER"}
  18. LOCAL ahlpflds:={{"DESC", "C", 34, 0}, {"POINTER", "N", 7, 0 }}
  19. LOCAL nRowhlp,nColhlp,lBadfile,cOldArea,cOldColor
  20. LOCAL cInit_Box,nCurState,nMgrFile,nHlpCnt,nHlpsize
  21. LOCAL nBurnSize,cBurnDate,cBurnTime,nMgrPt,nBoxSize
  22. PRIVATE nHlphandle,nTopRow,nLeftCol,nBotRow,nRightCol,cHeader
  23. PRIVATE cFooter,nHeadcol,nFootcol,cWinColor,nShadClrf,nShadClrb,cFrame,cMidBar
  24. PRIVATE nWinType,cShadType,nBoxMethod,lIplode,lXplodeTxt,nHlpSpacer
  25. PRIVATE cHeadColor,cFootColor,cFramColor,cTrimHdr,nFootType
  26. PRIVATE nLoop,cHlpString,nDspMeth,nLineSize,nNoFrames,nBliMrkx,cOldScr
  27. PRIVATE lMicroVoic,lEditRef,nPadSize,nLookPt,nTxtSize,nMWidth,nNoLines,cTrimFoot
  28. PRIVATE nText_Cnt,nScrnSize,nStartRow,lOutLoop,nStartPt,cLstDir
  29. PRIVATE nReadSize,lTopPage,lBotPage,nByteRead,nPrevRead,aHelpLine:={}
  30. PRIVATE nLines,nCnt,cSpeakStr,lSpeakOk,lVoiceload
  31. SETBLINK(.F.)
  32. nRowhlp := ROW()
  33. nColhlp := COL()
  34. SET KEY 28 TO
  35. cOldcolor := SETCOLOR()
  36. cOldarea := SELECT()
  37. nCurState := SETCURSOR(0)
  38. cOldscr := SAVESCREEN(0,0,MaxRow(),MaxCol())
  39. nBliMrkx := 13
  40. IF !FILE("HELPMGR.DBF")
  41.    IF FILE("SHELP.MGR")
  42.       cInit_Box := SAVESCREEN(09,19,14,61)
  43.       nNoFrames := SRIGHTBX(09,20,13,60,"╓─╖║╜─╙║ ",.T.,'B/W+','B/W+','R',.T.,7,0)
  44.       @09,22 SAY "╢ Help Message ╟"
  45.       @11,22 SAY "Please wait while setting up Manager"
  46.       @13,25 SAY "╢ Superhelp Codegen 5.0 ╟"
  47.       nMgrFile := FOPEN("SHELP.MGR",2)
  48.       FSEEK(nMgrFile,0)
  49.       nHlpsize := FSEEK(nMgrFile,0,2) - 20
  50.       FSEEK(nMgrFile,0)
  51.       nHlpCnt := (nHlpsize -179) / 42
  52.       DBCREATE("HELPMGR.DBF",aHlpflds)
  53.       USE HELPMGR NEW
  54.       INDEX ON SUBSTR(HELPMGR->Desc,1,10) TO Helpmgr
  55.       SET INDEX TO HELPMGR
  56.       nMgrpt := 179
  57.       cHlpString := SPACE(42)
  58.       FOR nLoop := 1 TO nHlpCnt
  59.           FSEEK(nMgrFile,nMgrpt)
  60.           FREAD(nMgrFile,@cHlpString,42)
  61.           nMgrpt := nMgrpt + LEN(cHlpString)
  62.           APPEND BLANK
  63.           HELPMGR->DESC := SUBSTR(cHlpString,1,35)
  64.           HELPMGR->POINTER := VAL(SUBSTR(cHlpString,36))
  65.        NEXT
  66.        USE
  67.        FCLOSE(nMgrFile)
  68.        IPLODEBX(nNoFrames)
  69.        RESTSCREEN(09,19,14,61,cInit_Box)
  70.    ELSE
  71.        SRIGHTBX(09,20,13,60,"╓─╖║╜─╙║ ",.F.,'B/W+','B/W+','R',.T.,7,0)
  72.        @09,22 SAY "╢ Help Error ╟"
  73.        @10,22 SAY "Please restore SHELP.MGR from disk"
  74.        @13,25 SAY "╢ Superhelp Codegen 5.0 ╟"
  75.        INKEY(10)
  76.        SETCOLOR(cOldcolor)
  77.        SET KEY 28 TO HELP
  78.        @nRowhlp,nColhlp SAY ""
  79.        RESTSCREEN(0,0,MaxRow(),MaxCol(),cOldscr)
  80.        RETURN NIL
  81.    ENDIF
  82. ENDIF
  83. IF FILE("helpmgr.dbf")
  84. lBadfile := .F.
  85. IF FILE("SHELP.REF")
  86.    nHlphandle := FOPEN("SHELP.REF",2)
  87.    nHlpsize := FSEEK(nHlphandle,0,2)
  88.    nHlpCnt := (nHlpsize -179) / 41
  89.    FSEEK(nHlphandle,-20,2)
  90.    nBurnSize := SPACE(7)
  91.    cBurnDate := SPACE(8)
  92.    cBurnTime := SPACE(5)
  93.    FREAD(nHlphandle,@nBurnSize,7)
  94.    FREAD(nHlphandle,@cBurnDate,8)
  95.    FREAD(nHlphandle,@cBurnTime,5)
  96.    FSEEK(nHlphandle,0)
  97.    IF nHlpsize <> VAL(nBurnSize) .OR. '08/11/91' <> cBurnDate .OR. '20:42' <> cBurnTime
  98.       lBadfile := .T.
  99.    ENDIF
  100. ELSE
  101.    lBadfile := .T.
  102. ENDIF
  103. IF lBadfile
  104.      SRIGHTBX(09,20,13,60,"╓─╖║╜─╙║ ",.F.,'B/W+','B/W+','R',.T.,7,0)
  105.      @09,22 SAY "╢ Help Error ╟"
  106.      @11,22 SAY "Please restore SHELP.REF from disk"
  107.      @13,25 SAY "╢ Superhelp Codegen '+superver+' ╟"
  108.      INKEY(10)
  109.      SETCOLOR(cOldcolor)
  110.      SET KEY 28 TO HELP
  111.      @nRowhlp,nColhlp SAY ""
  112.      RESTSCREEN(0,0,MaxRow(),MaxCol(),cOldscr)
  113.      RETURN NIL
  114.    ENDIF
  115.    USE Helpmgr INDEX Helpmgr NEW
  116.    DO WHILE .T.
  117.       nBoxSize := IIF(nHlpCnt>15,20,nHlpCnt+6)
  118.       nNoFrames := SDROPBX(03,39,nBoxSize,78,"╓─╖║╜─╙║ ",.T.,'B/W+','B/W+','S',.T.,7,0)
  119.       @nBoxSize-2,40 SAY REPLICATE("─",38)
  120.       @5,39 SAY "╠═"
  121.       @5,77 SAY "═╣"
  122.       @nBoxSize-2,39 SAY "╟"
  123.       @nBoxSize-2,78 SAY "╢"
  124.       @nBoxSize-1,40 SAY "  Enter - Select        Esc - Exit"
  125.       DBEDIT(4,41,nBoxSize-3,76,aFldnames,"","",aFldhdrs)
  126.       IPLODEBX(nNoFrames)
  127.       IF !LASTKEY() == 27
  128.         HELPPREP(Helpmgr->POINTER) 
  129.         DSPHELP()
  130.         RESTSCREEN(0,0,24,79,cOldscr)
  131.       ELSE
  132.         EXIT
  133.       ENDIF
  134.    ENDDO
  135.    USE
  136.    SELECT(cOldarea)
  137.    SETCOLOR(cOldcolor)
  138.    SET KEY 28 TO HELP
  139.    SETCURSOR(nCurState)
  140.    @nRowhlp,nColhlp SAY ""
  141.    RESTSCREEN(0,0,MaxRow(),MaxCol(),cOldscr)
  142. ENDIF
  143. RETURN NIL